perm filename DMON[SS,SYS] blob
sn#305086 filedate 1977-09-21 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00006 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 TITLE DMON DISK STATISTICS MONITOR
C00003 00003 GO: RESET
C00005 00004 SWR: JRST 2,@[.+1] LEAVE IOT USER MODE
C00012 00005 DPERCNT:IDIVI A,=100
C00015 00006 ADLKCNT:0
C00020 ENDMK
C⊗;
TITLE DMON DISK STATISTICS MONITOR
A←1
B←2
C←3
D←4
E←5
T←6
TT←7
Q←10
DDB←11
DAT←12
S←13
L←14
P←17
DDPMAX←←1000 ;MAXIMUM SIZE OF DATA DISK PROGRAM
FLINE←←3 ;FIRST TEXT LINE TO DISPLAY ON
FSLINE←←3*=12 ;FIRST SCAN LINE
DEFINE CW (OP1,D1,OP2,D2,OP3,D3) <
BYTE (8) D1,D2,D3 (3) OP1,OP2,OP3,4
>
FN←←1
CH←←2
COL←←3
HILINE←←4
LOLINE←←5
HS←←400000 ;FOR REFERENCES TO SYSTEM CORE
DEFINE INFORM (A,B) <
PRINTS /A=B
/
>
DEFINE DDCLR (ADR,NWDS) <
ZZ←←0
REPEAT NWDS,<
ADR+ZZ
ZZ←←ZZ+1
>
>
;LOW CORE POINTERS
CHKBEG←←223
SYSTOP←←265
GO: RESET
MOVE P,[-100,,PDL-1]
SETZM FREEZE
PUSHJ P,SYMLK ;LOOKUP SYSTEM SYMBOLS
DPYSIZ 2*1000+2
DPYPOS -600
MOVEI A,CHKBEG
PEEK A,
MOVEI A,233000 ;KLUDGE TO GET PATCH AREA
MOVEM A,SLOPC
LSH A,-9 ;# LO PIECE PAGES
MOVEI B,SYSTOP
PEEK B,
PEEK B,
MOVEM B,FHIADR
LSH B,-9+5 ;STARTING HI PIECE PAGE # * 40
ADDI B,10 ;SET 2-PEICE FLAG
HRL B,A
GETHI B,
JRST 4,.
SETOM SWCNT
MOVE A,[400017,,SWR]
SKIPN DEBUG
SPCWGO A, ;START UP SPACEWAR
SKIPE DEBUG
JRST SWR
MLOOP: INCHRW A
TRNN A,600
JRST MLOOP
LDB B,[POINT 7,A,35]
CAIL B,"a"
CAILE B,"z"
CAIA
SUBI B,40
CAIN B,"E"
PUSHJ P,EXT
CAIN B,40
SETCMM FREEZE
JRST MLOOP
EXT: SPCWAR 'SSW' ;KILL THE SPACEWAR MODULE
PUSH P,DDCLRS+1
SETZM DDCLRS+1
DDUPG DDCLRS ;WAIT FOR SPACE WAR LEVEL TRANSFER TO FINISH
POP P,DDCLRS+1
DDUPG DDCLRS ;CLEAR THE SCREEN
RESET ;RESET THE WORLD
EXIT
SWR: JRST 2,@[.+1] ;LEAVE IOT USER MODE
SKIPE FREEZE
JRST SWXIT
SKIPE DEBUG
JRST SWDEB
AOSE SWCNT
DISMIS
MOVNI A,4
MOVEM A,SWCNT
SWDEB: MOVE P,[-100,,SPWPDL-1]
PUSHJ P,SYMEXM ;EXAMINE SYSTEM SYMBOLS
PUSHJ P,DDPSET
PUSHJ P,MKDIS
DDUPG DDHEAD
SWXIT: SKIPN DEBUG
DISMIS
JRST SWR
MKDIS: MOVE A,DLKCNT
MOVE D,[440700,,DDLKCN]
PUSHJ P,DDECOUT
PUSHJ P,DCRLF
POPJ P,
DTAB: MOVEI B,40
PUSHJ P,.+1
PUSHJ P,.+1
PUSHJ P,DCHR
DCHR: IDPB B,D
TLNE D,760000
POPJ P,
PUSH Q,DWORD
DINI: SETZM DWORD
AOS DWORD
MOVE D,[POINT 7,DWORD]
POPJ P,
DFIN: MOVE A,DWORD
ANDCMI A,1
JUMPE A,CPOPJ
PUSH Q,DWORD
POPJ P,
DEXT: HLRZ A,A
SKIPA C,[POINT 6,A,17]
DNAM: MOVE C,[POINT 6,A]
DNAM1: ILDB B,C
ADDI B,40
PUSHJ P,DCHR
TLNE C,770000
JRST DNAM1
MOVEI B,"."
POPJ P,
DPPN: MOVEI B,"["
PUSHJ P,DCHR
PUSH P,A
PUSHJ P,DEXT
MOVEI B,","
PUSHJ P,DCHR
POP P,A
HRLZ A,A
PUSHJ P,DEXT
MOVEI B,"]"
JRST DCHR
DEOL: MOVEI B,15
PUSHJ P,DCHR
MOVEI B,12
AOJA L,DCHR
DDEC: PUSH P,OUTXCT
MOVE B,[PUSHJ P,DCHR]
MOVEM B,OUTXCT
PUSHJ P,DECOUT
POP P,OUTXCT
POPJ P,
DOCT: PUSH P,OUTXCT
MOVE B,[PUSHJ P,DCHR]
MOVEM B,OUTXCT
PUSHJ P,OCTOUT
POP P,OUTXCT
POPJ P,
CLRRST: SUBI L,=35 ;- NUMBER OF LINES TO CLEAR
CLRRS1: MOVEI B,40
PUSHJ P,DCHR
MOVEI B,15
PUSHJ P,DCHR
MOVEI B,12
PUSHJ P,DCHR
AOJL L,CLRRS1
PUSHJ P,DFIN
POPJ P,
DPERCNT:IDIVI A,=100
PUSH P,B
PUSHJ P,DDECOUT
MOVEI A,"."
IDPB A,D
POP P,A
MOVEI B,"0"
CAIGE A,=10
IDPB B,D
JRST DDECOUT
SYMLK: MOVE B,[RADIX50 0,DLKCNT]
MOVEI C,0
MOVEI D,B
.SYML D,
JRST 4,. ;LOST
MOVEM D,ADLKCNT
CPOPJ: POPJ P,
SYMEXM: MOVE B,ADLKCNT ;GET ADDRESS OF SYSTEM SYMBOL
MOVE B,HS(B) ;GET CONTENTS OF ADDRESS IN SYSTEM
MOVEM B,DLKCNT
POPJ P,
DDPSET: MOVSI A,-NDDCLR
MOVEI B,1
DDPSE1: MOVEM B,@DDPCTB(A)
AOBJN A,DDPSE1
POPJ P,
DCRLF: MOVEI A,[BYTE (7) 15,12]
DTYPE: HRLI A,440700
DTYPE1: ILDB B,A
JUMPE B,CPOPJ
IDPB B,D
JRST DTYPE1
DDECOUT:PUSH P,OUTXCT
MOVE B,[IDPB B,D]
MOVEM B,OUTXCT
PUSHJ P,DECOUT
POP P,OUTXCT
POPJ P,
DECOUT: PUSH P,C
MOVEI C,=10
PUSHJ P,NUMOUT
POP P,C
POPJ P,
OCTOUT: PUSH P,C
MOVEI C,10
PUSHJ P,NUMOUT
POP P,C
POPJ P,
NUMOUT: IDIVI A,(C)
JUMPE A,NUMOU1
HRLM B,(P)
PUSHJ P,NUMOUT
HLRZ B,(P)
NUMOU1: ADDI B,"0"
XCT OUTXCT
POPJ P,
ADLKCNT:0
DLKCNT: 0
PDL: BLOCK 100
SPWPDL: BLOCK 100
SWCNT: 0
DEBUG: 0
SLOPC: 0 ;NUMBER OF WORDS IN GETHI LOW PIECE
FHIADR: 0 ;FIRST SYSTEM ADDRESS IN GETHI HI PIECE
OUTXCT: OUTCHR B
NAMPTR: 0
EXTPTR: 0
PPNPTR: 0
FREEZE: 0
DDHEAD: 600000,,DDPROG
DPRGL
0
DDPRGL
DDPROG: CW(FN,46,FN,46,FN,46)
DDPRGL: CW(COL,2,HILINE,FSLINE⊗-4,LOLINE,FLINE&17)
ASCID / DSKMON Disk statistics monitoring program
DLKCNT = /
DDLKCN: BLOCK 3 ;ROOM FOR 11 DIGITS, CR AND LF
0
DPRGL←←.-DDPROG
DWORD: 0
DDPCTB: DDCLR DDLKCN,3
NDDCLR←←.-DDPCTB
DDCLRS: DDCLRP
2
0
0
DDCLRP: CW(FN,17,FN,17,CH,0)
0
END GO